{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 准备数据集\n",
    "# 此处自己生成一些原始的数据点\n",
    "dataset_X=np.linspace(-10,10,100)\n",
    "dataset_y=2*np.square(dataset_X)+7 # 即label是feature的平方*2，偏置是7\n",
    "dataset_y /=np.linalg.norm(dataset_y) # 归一化处理\n",
    "dataset_X=dataset_X[:,np.newaxis]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5,1,'dataset distribution')"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 查看数据集的分布情况\n",
    "plt.scatter(dataset_X,dataset_y)\n",
    "plt.title('dataset distribution')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 100; Error: 0.8664195162339818;\n",
      "Epoch: 200; Error: 0.021679766890450557;\n",
      "Epoch: 300; Error: 0.020744747122209976;\n",
      "The goal of learning is reached\n"
     ]
    }
   ],
   "source": [
    "# 构建并训练模型\n",
    "import neurolab as nl\n",
    "x_min, x_max = dataset_X[:,0].min(), dataset_X[:,0].max()\n",
    "multilayer_net = nl.net.newff([[x_min, x_max]], [10, 10, 1])\n",
    "# 模型结构：隐含层有两层，每层有10个神经元，输出层一层。\n",
    "multilayer_net.trainf = nl.train.train_gd # 设置训练算法为梯度下降\n",
    "dataset_y=dataset_y[:,np.newaxis]\n",
    "error = multilayer_net.train(dataset_X, dataset_y, epochs=800, show=100, goal=0.01)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5,1,'Training error progress')"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYMAAAEWCAYAAACEz/viAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3XmcXGWZ6PHfU1sv2UOSJiSBAEEIIMQsKIva4BaXEfTqKPeqoDhxrjLjXJcr6OhldJzrctWrXhzEkWXcEBUGjAgipkUYlhBISCBAQkjI0iEJWbuTXqrquX+876k6VV1VXd3pququer6fT32q6pxT5zx10jlPvesRVcUYY0xji9Q6AGOMMbVnycAYY4wlA2OMMZYMjDHGYMnAGGMMlgyMMcZgycDUkIhERaRLRI4fyW2NMUMnNs7AlEtEukJvW4FeIOXff0xVf1b9qIwxI8GSgRkWEdkMfFRV/1him5iqJqsXVeUV+k5D/Z4jcV5G+tzW47+VGRqrJjIjRkT+WUR+KSK/EJFDwAdE5FwReVhE9otIp4h8T0TifvuYiKiIzPXvf+rX/15EDonIQyJy4lC39evfKiLPicgBEfm+iDwoIpcXiTsiIp8XkedFZI+I3CIiU/y6ef64HxaRF4E/FFrmt71ERJ7y3/VPInJq6BjbROSzIrIWOFwghuD7/Z2IvODj+JqIRPz6j4rI/f477wX+0cf9JRHZIiK7ROQmEZkY2ueHReRFv6/P+xjaS/xblToPrSLycxF52X+/R0Vkml93hYhs9v8Om0Tk/UP92zG1Z8nAjLR3AT8HJgG/BJLAJ4FpwPnAUuBjJT7/X4EvAlOBF4GvDHVbEZkB3Ap81h/3BeCcEvv5FPB24HXAbKAb+F7eNq8DTvPbDVgmIvOBnwJ/B0wH/gj8Nkh83vuBt+LOTTEXAwuBxcB7gA+F1p0HrPf7/zrwUeADQDtwMjAF+K4/B6/03+H9wCz/mWPzjpX/b1XqPHwYVzU4GzgG+DjQ45PPt4E3qeoE3L/xkyW+nxmtVNUe9hjyA9gMvDFv2T8Dfxrkc58BfuVfxwAF5vr3PwWuC237TmDdMLb9CPCX0DoBOoHLi8S0AXh96P0cXHtIBJjnj3t8aH2hZf8E/Dz0PgLsBC7w77cBHypxXoLv98bQsr8H7vGvPwpsyvvMn4FlofdnhOL+MvCT0LpxuMTcXuzfapDzsAx4AHhl3mcmAvtxiaW51n+X9hj+w0oGZqRtDb8RkdNE5HcislNEDuIuUtNKfH5n6PVhYPwwtj0uHIe6q9a2Evs5Hvcrfr+I7AfW4i7MM0LbbC3wufCy44AtoWOm/TFnDbKPUvvc4vdb7PM5x/SvE7hSQP456Ab2lTgWlD4PN+FKO7eKyHZfhRVT1YPApcAngJ0islxEXlHG9zSjjCUDM9LyeyT8EFgHzFPVicCXcL/UK6kTV50BgIgIuRflfNtw1RyTQ49mVc0kG59QcuQt2wGcEDpmxMewPfyRMmKfE3p9vN9vsc/nHNNv3wfsZuA5GIerRsr5Cnnvi54HVe1T1WtUdT5wAa4k8N8AVPX3qvpGYCawEfdvbsYYSwam0iYAB4BuX69eqr1gpCwHForIX4lIDNdmMb3E9tcB/yJ+DIOIzBCRdw7xmLcC7xSRdt9O8FngEPDIEPfzP0Vkso/l73F1+cX8AviUiMwVkQnAV4Ff+FLJr4BLROQ1IpLAlcgGU/Q8iMhFInKmT3IHgX4gJSIz/XluxSWibrLdjc0YYsnAVNqngctwF8YfUvriNiJU9SXgfbiGzZdxjatP4Oq/C/k2cDdwn+9Z85/AkiEe8ync9/xX3C/zpcA7VbV/iOH/Fljt470dVz1TzI9w5/MvwCbcOf6kj+dJ4H/gksIO3Hl4meLnAEqfh+OA23CJ4ClcldEvgCgu8XX6/Z8HXFn+1zWjhY0zMHVPRKK4C+J7VPUvtY6nEF+C6QdOVNXNFdh/0NB7gqqW03ZhGoyVDExdEpGlIjJJRJpw3U+TwKM1DquqROSdfnzAeOBbwOOWCEwxlgxMvboAV3WyB1dlc4mqlqoiqUfvwpWItgFzcb1+jCnIqomMMcZYycAYY4wb9TjqTZs2TefOnTusz3Z3dzNu3LiRDajCLObqsJirw2KujkIxr1q1ao+qlupWnVXrIdDlPBYtWqTDtWLFimF/tlYs5uqwmKvDYq6OQjEDj6lNR2GMMaZclgyMMcZYMjDGGGPJwBhjDJYMjDHGYMnAGGMMlgyMMcZQ58ngvvUv8btNfbUOwxhjRr26TgYdz+7m7heGOp28McY0nrpOBtGIkLJ5+IwxZlAVSwYi0iwij4rIGhF5SkT+yS+/SUReEJHV/rGgUjFEI0LakoExxgyqkhPV9QIXqWqXvyfsAyLye7/us6r66woeG4CYJQNjjClLxZKBnySpy7+N+0dVL80RqyYyxpiyVPTmNv7es6uAecC1qvo5EbkJOBdXcrgPuEoL3IFKRJYBywDa2toW3XLLLUM+/m829LH8+T5uXDp++F+iBrq6uhg/3mKuNIu5Oizm6igU84UXXrhKVReXtYNypzc9mgcwGVgBnAnMBARoAm4GvjTY54c7hfW3//CsnvC55ZpOp4f1+Vqpl+lzRzuLuTos5uoYE1NYq+p+oANYqqqdPs5e4EbgnEodNxYRAFLWcGCMMSVVsjfRdBGZ7F+3AG8EnhGRmX6ZAJcA6yoVQ8Qng6QlA2OMKamSvYlmAjf7doMIcKuqLheRP4nIdFxV0WrgbysVQFAySFewXcQYY+pBJXsTPQm8qsDyiyp1zHxRKxkYY0xZ6n4EMkDK+pcaY0xJdZ0MMg3IVk1kjDEl1XUyiFhvImOMKUtdJwPrWmqMMeWp62QQEUsGxhhTjrpOBrGoJQNjjClHXSeDoGRgXUuNMaa0uk4GsYj7ejbozBhjSqvrZJAZdGbjDIwxpqSGSAbWZmCMMaXVdTKwQWfGGFOeuk4G2UFn6RpHYowxo1tdJ4PsoLMaB2KMMaNcXSeDbNdSywbGGFNKXSeDYNCZ5QJjjCmtrpOBlQyMMaY8dZ0MbKI6Y4wpT10nAxtnYIwx5alYMhCRZhF5VETWiMhTIvJPfvmJIvKIiGwQkV+KSKJSMRRKBiue3cWhnv5KHdIYY8akSpYMeoGLVPVsYAGwVEReA3wd+I6qngLsA66oVAD5g84OHO7nwzeu5LdrOit1SGOMGZMqlgzU6fJv4/6hwEXAr/3ym4FLKhVD/p3O+vyAg95kqlKHNMaYMamibQYiEhWR1cAu4F7geWC/qib9JtuAWZU6fn4DsmrwXKkjGmPM2BSr5M5VNQUsEJHJwO3A/EKbFfqsiCwDlgG0tbXR0dEx5OPvPuxKAk89vZ6pBzeyr8e937BxIx3JLUPeX7V0dXUN6/vWksVcHRZzdTRkzKpalQfwv4DPAnuAmF92LnDPYJ9dtGiRDseO/Yf1hM8t1188skVVVbftc+9/dP/zw9pftaxYsaLWIQyZxVwdFnN11EvMwGNa5jW6kr2JpvsSASLSArwRWA+sAN7jN7sMuKNSMWTuZ+CridJpqyYyxphCKllNNBO4WUSiuLaJW1V1uYg8DdwiIv8MPAH8uFIBRCW/zcAttzufGWNMroolA1V9EnhVgeWbgHMqddyw4LaXQTIIkoClAmOMyVXXI5B9LhiQDMIlg817ulnxzK6qx2aMMaNJRXsT1VqmZJBJAm55uJao/f90ALD5a2+vZmjGGDOqNGTJQK3NwBhjctR1MijaZmC5wBhjctR1MvA9S0NdS917m8TUGGNy1XUyEBEiAimfBbK9iSwbGGNMWF0nA8AnA/c6O86gdvEYY8xo1CDJILdkYI0GxhiTq+6TQTRUMkjndTE1xhjj1H0ysDYDY4wZXGMkgxKDzowxxjREMpDsOIO0VRMZY0whdZ8MXJtBXsnAqomMMSZH3SeDiGQHnamNQDbGmIIaIhkMKBlYNjDGmBwNlgyKtxlYgjDGNLKGSgapEtVE1qhsjGlkdZ8MoqHeRFrg5jYBKxkYYxpZ3SeDnGqidPHtrGRgjGlkFUsGIjJHRFaIyHoReUpEPumXXyMi20VktX+8rVIxQP6gs+Ilg0LLjDGmUVTytpdJ4NOq+riITABWici9ft13VPX/VPDYGREK9SaqxpGNMWbsqFgyUNVOoNO/PiQi64FZlTpeMdEIJFODtxlYycAY08ikGg2nIjIXuB84E/gUcDlwEHgMV3rYV+Azy4BlAG1tbYtuueWWYR37qw91EYlEufrVLTzameQHa3ppnxPj8jOaALj87m4ArntjK80xGdYxRlpXVxfjx4+vdRhDYjFXh8VcHfUS84UXXrhKVReXtQNVregDGA+sAt7t37cBUVwNzleBGwbbx6JFi3S43vqNu/TdP3hQVVXvWL1dT/jccr3qN2sy60/43HI94XPL9eCRvmEfY6StWLGi1iEMmcVcHRZzddRLzMBjWua1uqK9iUQkDvwG+Jmq3uaTz0uqmlLVNPAj4JxKxhAp0LW0UGHIKomMMY2skr2JBPgxsF5Vvx1aPjO02buAdZWKAQqPQC6YDEp0OzXGmHpXyd5E5wMfBNaKyGq/7PPApSKyAPdjfDPwsQrGQFSgN2+cQcFBZ1Y2MMY0sEr2JnoAKNQie1eljllIwZKBX5cOjTSzQWfGmEZWsppIRKIicnO1gqkEN4W1KxIEBYIgKSRDGUAL1R0ZY0yDKJkMVDUFzPQNwWNSVLK/+oORyEHRIGUlA2OMAcqrJtoE/EVE7gC6g4Wq+r2KRTWCJFQyyJ+OIhmarMjaDIwxjaycZLAbuBdo9Y8xJSoSajh2z8FlP5VTTVTduIwxZjQZNBmo6hcBRKTFvz9S6aBGUm6bQe4cRf0pSwbGGANljDMQkdNFZCWwAdgoIo+IyPzKhzYyXG8i9zqdN/gst83AsoExpnGVM+jseuDzqjpbVWcBX8CNHB4TXDII2gzcsuC6n9tmYIwxjaucZDBBVYOpp1HVPwITKhfSyIoWHGdQoGTgXx/s6WfuVb/j1se2VjlSY4ypnXKSwWYRuVpEZvvHVcCWSgc2UnLvZ5A7EjlZoD/ppt2uw9RPHhozX9EYY45aOcngI8Ac3Mjhu4DZwIcrGdRIikQkc9HP9iYq3mZw4Eg/AJNaxuzQCmOMGbKSvYlEJAp8VlU/XqV4RpwbdJZ/20u3rj8VajPwyw76ZDCxpZLTNhljzOhSzgjkik4xXWlu0FnubKXBs5UMjDHGKefn7+MichvwK3JHIN9ZsahGUFTcxT+d1tDEdAXmJvLPBzIlA0sGxpjGUU4yaMMlgbeFlikwJpJBxM+bmlLNVA+lC5QMgrEHQTXRhCarJjLGNI5y2gxWjpV5iArJJIO0ZiaqCy78yQIjkIOSgTHGNJJy2gzeXaVYKiKcDPKnoyg0a+nBnn6/rmohGmNMzZVTF/KAiHwXuIXcNoMnKxbVCIqKywbJtA64uU14BHJ+A7JNT2GMaSTlJIPX++eFoWUKvG7kwxl5QckgndbQdBTK8id3cOXPn8hsF1z793X3Z7YxxphGUc6spa+tRiCVEiSDnJKBwm2Pb8/ZLli3/3Cff1+9GI0xptbKmbV0uoj8UESW+/eni8jlZXxujoisEJH1IvKUiHzSL58qIveKyAb/POWov0UJ0aBkoJpz28vJRbqO7jts1UTGmMZTznQUNwF/xk1JAW4q60+X8bkk8GlVnQ+8BviEiJwOXAXcp6qnAPf59xUj4ZJBaPDZ5NZEznYuWShH+lNA6BaZxhjTAMpJBjNU9edAGkBV+4HUYB9S1U5Vfdy/PgSsB2YBFwM3+81uBi4ZRtxli4baDFKhaSkmt+aWDFShNzlwegpjjGkE5TQgd4vIVHwnHBFZAhwaykFEZC7wKuARoE1VO8ElDBGZUeQzy4BlAG1tbXR0dAzlkBl9vb2A8OBDD7N1q6sC2r9/Pzu3duVs99iqVWwbl82NW158kY6Ol4Z1zKPV1dU17O9bKxZzdVjM1dGIMZeTDD4D/BY4SUT+jPt1/55yDyAi44HfAP+gqgclqLcZhKpej7uxDosXL9b29vZyD5nj4c4/Ar0sXnIOTyc3w4tbmDhpEifPmwnPPJ3Z7lULFzJrcgvcdx8As2bNob399GEd82h1dHQw3O9bKxZzdVjM1dGIMZfTm+gxEbkQmA8I8LSq9pWzcxGJ4xLBz1T1Nr/4JRGZ6UsFM4Fdw4y9LOFBZ+HeRPldR1WV3v6B4w6MMaYRlNNmgKr2qeoaVV09hEQgwI+B9ar67dCqO4HL/OvLgDuGEvBQRTMNyOnQ3ESaM/oYXILoSWabQoJksHHXIb5/34ZKhmiMMTVXydnYzgc+CKwVkdV+2eeBrwG3isgVwIvAeysYQ2jQWbY0oAwcR5BW6OkfmAzee91D7DvczxWvPZHWhE1eZ4ypTxW7uqnqA7hqpULeUKnj5ouESwa+Fkh1YDWQqub0JgqSxaGeZDXCNMaYmho0GYjIWQUWHwC2quqon84tPOgsPGtpOq9okFboC5UMMjOb5t0y0xhj6lE5bQY/BlYB/w78BHgMuB3YICJV+4U/XJFgorpU7kR1QWK45q9O98vyGpDz0lx+G4MxxtSTcpLBBmCRqi5Q1bOBRcBq4C3AtyoZ3EgI39wmPB1FcG2fP3MiMLABOX8Ecn5Jwhhj6kk5yWB+eLpqVV0LLFTVjZULa+SU6loaEYj4DVQp2bXUupoaY+pZOQ3Iz4vI93H3MwB4H7BRRJpw8w+NarmzlrrXaXXJISKSaeFOq2ZKBk2xyIDpKGyuImNMPSunZPAhYBtuQrmrgR248QFJqtgraLiiOfczCDUgqysVBCOilWzJoDURHVgyGPVN5cYYM3zljEA+DHzdP/IdGPGIRli4ZKChaqK0ryaSUG+joGTQEo8WGIdgJQNjTP0qp2vpa4D/BZwQ3l5VX1HBuEZM0Jsonc6OOlZc19KoSGY9Cj2+ZNBcoGRgvYmMMfWsnDaDG4H/ieteOujU1aNN0TYDHdhm0JtMkYhFiIoM6D1kBQNjTD0rJxkcVNXfVjySCsm901m2zUB9m0FQMgh6EzXHIkQjMrBkYNnAGFPHykkGfxKR/w3cBvQGC8PdTUezTMkglS0ZFGsz6E2maI5HEZEBbQZWTWSMqWflJIML8p7Bdb553ciHM/LCg85yRiAHXUszycC1GTTFI0Sk8BTXxhhTr8rpTfTaagRSKbmDztzrdKhraaYBGV8yiEWJFCoZWDIwxtSxoslARC5V1V+IyN8XWq+q36tcWCMnpwE56E2krndRbjVRbskgv1rIqomMMfWsVMlgin+eXo1AKiUa6lqarSZyr8NdS1XJlAyCKqVw1ZAVDIwx9axoMlDVH/jnL1YvnJGX27XUT0eddtU+kj8dRX+a5niEnv40qtCXyg47tpKBMaaelTPobBrwEWAuuYPOllUurJETyZmOIrtcFaL501EkU0xuidOXTGeSQ8DaDIwx9ayc3kR3AA8DDzDGB50F1T7BPZDDbQbqL/5N8QjSK5mupgHrTWSMqWflJINxqvrpoe5YRG4A3gHsUtUz/bJrgL8BdvvNPq+qdw1130MRHnQ2cJzBwDaDpliUiLiqpPCU1imbqM4YU8fKmbX09yLy5mHs+yZgaYHl3/E3yllQ6UQA+YPOsiWDYARyuM0gmVLiUcmMQA7fE9naDIwx9aycZPC3wN0i0iUie0Vkn4jsHexDqno/MOh2lRZc7FPpdLZrKWSqicIlg2RaifqxB1ZNZIxpJOVUE00b4WNeKSIfwt1L+dOquq/QRiKyDFgG0NbWRkdHx7AO1t3dTVSETZu3cOCgu7j39vaya/dujhxRHnnkYQCeXr+ent4+dnZ2su+IcrhfeejRxzL7eXz1Gvq2RYcVw1B1dXUN+/vWisVcHRZzdTRizKUGnZ2iqhuAM4psMpy5if4V+Arux/lXcPdQ/kihDVX1euB6gMWLF2t7e/swDgcdHR1Eo0eYNWcOL/TsgYMHiccTTD1mMj37ezj33EVw/wpOPe00opvWc/zs49C9h9nX3ccZr5wPD7tkceYrX0n7qTP4l7vWc8ZxE7l4waxhxVNuzMP9vrViMVeHxVwdjRhzqZLBVcAVwLUF1g1rbiJVfSl4LSI/ApYPdR/DEYtITtfSoDE5p2upKqmUZqaoSCuZm9249e75+vs3AZSVDO5YvZ3XnjKdqeMSI/uFjDFmhJUadHaFfx6xuYlEZKaqdvq37wLWjdS+S4mK5N7pjHCbgdtG/T0O3Khktz63N9HQ2gx2Hujhk7es5pwTp3Lrx84dqa9ijDEVUU6bASJyGnA60BwsU9WfD/KZXwDtwDQR2Ya7W1q7iCzAXY83Ax8bVtRDFI1KznQUwWvXm8hPV6Hugh+NFm5Azp+eYjBJf9PkbXsPj+A3McaYyihnBPI/Am8GTgPuAd6CG4BWMhmo6qUFFv94GDEetaBkkBlngCsJRHwpwC1zA9GC+YqCm90E8ruaDiaofrKRy8aYsaCcrqXvAy4EOlX1g8DZlFmiGC2CcQPhWUuDaiJCs5am1HctjbiLf3dfMrOPVBq6e5MF9l5Y0o9Ss8FqxpixoJxkcERVU0BSRCYAO4GTKhvWyIpGJGfQmfpZScMjkNNpzZmvKK2ac/FPq3K4r/zZOPpT7liptGUDY8zoV84v/CdEZDJwA25swEHg8YpGNcKiEcm5uY3iLu6xSCQzKC3pVwbVRGmF7r7cNoOhJIOgzcBGLhtjxoKSyUBcxfc1qrofuFZE7gEmquqYSgaxiOTc9jLctTQoGQTVOtGoEBUGlAxSaeVw31CqiYKSgSUDY8zoV7KaSF33meWh9xvHWiIANwdR0lcDQbbNQEKzlg4sGSjdveGSAUOsJvIlA2tANsaMAeW0GTwqIgsrHkkFZQedZRuQ1TcWB71+got3ps3ANxiPb3KFp3Q6W00UD6ZCLSFILlYyMMaMBaWmo4ipahK4APgbEXke6Mb1v1FVHTMJIuK7lgYXZkVJ+QZkCc1qCkHVkUsW3X1JJjTH6OpNktJsNVFTbPA5ijIlA0sGxpgxoFSbwaPAQuCSKsVSMbFo/nQU7n4F4VlL+9PZkkFEXBtDd69LBp0HchuQm2KDF6iC5GK5wBgzFpRKBgKgqs9XKZaKiUYi9Ienowh1Lc30JvIX74gIkYhk2ggmNMcBV010xI9ITpSTDKxLqTFmDCmVDKaLyKeKrVTVb1cgnopIRIV+f19j8CWDvHEGQW+iWKiaqKs3ybGT3AwcqbRypK/8ZNCXtCKBMWbsKJUMosB4sveHGbOaYlEO9yVzqmxS6aAB2b3v9yvDs5bmlAxC4w7KOSFWMjDGjCWlkkGnqn65apFUUFMswv4j2ZIBuIt7TtfSoDeRn68oaCOY0Ox7E4UakJNlNAQE1U7GGDMWlKrvGPMlgkBTPEJvf5pwl/9kOp036MytjEVd19K+ZJq+ZDqTDFKhrqXl9BDqt0mJjDFjSKlk8IaqRVFhTbEovcl0zkU8lcprQE5nG5CjEclc+CeGqomGVDKwbkTGmDGkaDJQ1ZrfzH6kJKIRepOpnGqipB+BnCkZpHMbkAO51UTllwySoZJB2hKDMWaUK2cE8pjXFI/Qm8ytJgruXZBpQE7lNiAHMskgrRz201Mky6gC6g+1GQzlPgjGGFMLjZEMYq7NwHUndcuyI5DzJqoLLQOY0BTPbH/gSL97XVY1UTYBhO+YZowxo1GDJIMoPckUybTSEndTSaRS7raX4HoUZSaqi+ZWE40PlQz2Hu4DymsPCJcMevqtZGCMGd0aJBlEMlVErX7iuWQ6W0qIiGQnqpPcaqLmeNTdD0GVfd0uGQQlg427DnHGl+5ma4H7HCdzqomsZGCMGd0qlgxE5AYR2SUi60LLporIvSKywT9PqdTxw8IjhoNZSINBZ+D60OZMVBcqGsR9SeHAkX6SaWVcIuqnw1Z++vCLdPeluOepnQOOGa4mspKBMWa0q2TJ4CZgad6yq4D7VPUU4D7/vuLCE8u1Jlw1UTKdzpQAIiKZEcjRvN5E8WiEiAi7D/UCMH1CE+C6mvb50kShiev6UtZmYIwZOyqWDFT1fiC/e+rFwM3+9c1UaUbUpnh2yulxiaCraLZbKZK9V3E0rzdRPBohGhFe7nJVRDMmuLmKkmk3KA0KT2mdtDYDY8wYUs49kEdSm6p2Aqhqp4jMKLahiCwDlgG0tbXR0dExrAN2dXWxafuzmfc9XQcyr7dv30pHxy5Ip9l/4BAAa554gs17s7/kV618hHQqxdbd+wHQHvf5jo772brdlRY2bniWju7cyV03v9ibef3oqic4vGXweyCEY87/vqqa08tptCkU82hnMVeHxVwdRxtztZNB2VT1euB6gMWLF2t7e/uw9tPR0cGC40+Fte5unXNmzuDJPZ0AnHD88bS3zyd63900tTRDVzdLFi+id+Me2OASyOvOP4/EI3+mOwWQ5IyT5rBy52bOveACbu98Enbu5IzT59O+YFbOcf+wby28+CIAp55+Ju2ntw0p5vD33fJyN6//ZgfX/teFvP2smcM6D5WWH/NYYDFXh8VcHUcbc7V7E70kIjMB/POuahw03IA8rin7Cz3bZhDqWhqRTMMyZKuJunrdVBRBm0EypZl2gUKT0oUHph3pP7o2g9VbXank9+s6j2o/xhhTTLWTwZ3AZf71ZcAd1ThobgNytjAUXPNFZMBtLwOxaLYNIRGNMLE56JqazjQMF5qULplSElF33EM9/UcVf3AfhZZ4+VVNxhgzFJXsWvoL4CHgVBHZJiJXAF8D3iQiG4A3+fcV11SkZBANDTrLjDMo0IAcdDWdOi5BzF/gU2nNNCAXSgb9aWXquAQAB48kjyr+YE6koCeUMcaMtIq1GajqpUVWVX021HBvonDJIGiQFbIDySJ501HEoxGi/v2klngmgSRTmplzqNDcQ8mUm/765W7JTGMxXEE1U7MlA2NMhTTMCOTAuNAFNbjIRyLZEcj5s5aGq42a4hFi/k1uyWBgm0F/SolFI0xqiXPwKKuJeoJkUKALqzHGjISGSgYRyS0lRLLDDIo2IAOZaqJENJKpJkoOUk2UTKeJR4WJzXEOHumXkGwrAAAZxklEQVRH1Y1aHo5DPa6aKT3MzxtjzGAaIhkEvYlaE7GcX/3BRT4SakCORGRAf/4gOYRLBnu7+zJ1+cUakGMRYUJLnIM9SW5/YjtLvnpfJoEMxUFfzTSczxpjTDkaIhkEI4RbEtGcC33QUCwC/UVubhPeLuG7mQL89Q8fYufBHiB36olAXypN3Pc+OnCkn5Wb97Knq5eX/GeGImhzsPsiGGMqpTGSQTwoGURzbuwc7loa1MBE8mYtDW/XFItmSgZhhX6xJ30ymNQS59CRfp7f3Q0wrGSw35KBMabCRu0I5JEUtBm0xKM5F/poppqInGXZqa2DZ18yiEUGtCdAsTYDJRYVJvoG5KAR+aWDvQO2Hcx+fx8Fm/DOGFMpDZEMgsFfrpoouzzbtTQ3QQTLY5FIZhm4pBIsC+tPFulNFIkwsTnOHj/JHZCpWhqKA36cgrUZGGMqpSGqiUSERCziqonCpYC8EgD43kSZLqfB+vJKBg89/zK/XbMDCKqJhEkt8Zxtdw0xGagqB464ZGLJwBhTKQ1RMgD3qz6/mih728tQyUAkkwSCUkDwvikWJRbNbnvGcRN5ce9hen0yuPRHDwPwV2cf56uJIkxsyZ7iRCwy5JLB4y/uy4xjsDYDY0ylNETJANyFvCWRm/vCvYkC4ekoglJAtEjJ4JvvOZtZk1voL3CR7k+liUeECc2uZNCaiHLWrEnsPDC0ZHDlz5/g+KmtnHBMq5UMjDEV0zDJYP7MCZx27ITckkGRZJBtM8gtOSRikZzeRC2JKIlYpPg4g6hkRjx/4sJ5tE1qZteh8huQVZWdB3u4ZMFxzJ7SUrALqzHGjISGSQY/ueLVfOLCeTkX/vzeQsGyzPLQ1BPgqprCJYPWRJR4NFJwOopkOk0sGuHCU2fw0ytezcfbT2bmxGY6DxwpeyRyT38aVWhJxGiKRa03kTGmYhomGQQKthn490GpIKgWCp6ToWQQ7k3UkogSjwq9yVRmmmmAddsPsKerj3hEiESEC06Zhogwe0oLPf3pnN5FpRzuc72IWhNREtGIVRMZYyqm4ZJB7qAzyXmOSm61UHaG0uyN78Mlg5a4Kxms3LyP+V+6O7P8Hd9/AMgOFgvMmdoKwNZ9h8uKNZittCURpSluycAYUzmNlwxyBp0FC4P3uYPQgp5DQckgv80gHo1kxjAUcsZxE3PeZ5LB3jKTQeimNoloxHoTGWMqpgGTQfb1gJJBpPD7/kzJIDpgnEH4lpphl583l7957Uk5y2ZPaQFg274jZcUavqlNImYlA2NM5TRcMijYmyjz3j/7s5JpM0iFSgbR3GQQL1IymDY+MWD209ZEjGnjE2WXDIJk0JKI+gZkSwbGmMpouGRQqs0guFdBfskgWaQ3ERRPBq2JwuP5Zk9pHUKbQdCAHLOSgTGmomoyAllENgOHgBSQVNXF1Tp2eGqh7KylwfvC1URJP711osDcRInYwOkpIPdey2EnTx/Pn555yQ1KK9HeAHCkzx23Je6riVJpVHVAicMYY45WLUsGF6rqgmomAsidlC5/Oopo3lxEsUheNVG0/JLBuKbCefYtZ7Sx73A/D27cM2is4a6lwcyrp3/pHvZ2l9c11RhjytVw1UTheqL8NoPMXER5vYsyDcjxgfczKNabaFyRaqLXnzqdic0x7vQT2pWS07XUJ4Mj/Sk27e4a9LPGGDMUtZqoToE/iIgCP1TV6/M3EJFlwDKAtrY2Ojo6hnWgrq6unM+u253MvH5q3Vriu9bT3e169/T19tDR0cH6l91FuOvQQTo6OjLJ4MknVrFrXPbi39HRQed29yt9/tQIcyZE+MMWt//nnl6L7CxcVXT2MXDXmu0sPWYfiejAKp8g5nWb3L5XPfyfbNmRjftPDz9O1+bRNcdg/nkeCyzm6rCYq+NoY67VFeV8Vd0hIjOAe0XkGVW9P7yBTxDXAyxevFjb29uHdaCOjg7Cn408txtWPQrA2WefRfupM5i49gE4eIDx41ppb28n8fweWPkIUyZPpr39XNJ3/84Ffe6rOWFqK9z7ewDa29t56Mh6eGETb188j4sXzOIP31jhtn31Ys6cNalgTLFZe/jLjx8hOeM03vzKmUVjfrz/OXhuA2+6qJ39q7bC02sBmDb7ZNovOHFY56NS8s/zWGAxV4fFXB1HG3NNqolUdYd/3gXcDpxTrWPn3Oks02BMznMwF1F+N9JCbQa9/b6RNxGjJZEtCYwv0mYAcO7JxzBtfBN3re0sGWtPf4rmeIRIRHLGM7x0aOg3yDHGmFKqngxEZJyITAheA28G1lXv+NnXmcSQ13soSAbRvJ5DTfHIgJ48Pf3ZgWHN8WwyaC3Smyg4zutfMZ0HNu7JHKuQw33JTBfVRDS7v9sf384373mm6OeMMWaoalEyaAMeEJE1wKPA71T17kE+M2JykkGm95B7Di7+mZJBXimgKXRBvvy8uUCokTcepTn0671YA3LgtadMY//hfp7acaDoNof7UrT4BNPdl20z2HWol2tXPF9w6mxjjBmOqrcZqOom4OxqHzeQ07U0rzdR0DEoGGQWySsFNMXdBpu/9vbMsmD+oOZ4lJifq6g/nc5cxIs5f940AP6yYQ9nzZ5ccJsjfSlafdXT/sMDu5PuPtTLcZNbSh7HGGPK0XBdSyMFqonyZy1NZ6qJcj9bqBtp8Os8aC9oikdojUczYxiKmT6hiVe0jefRF/YW3eZIfyqz3/ctOZ53L5zFvBnjM+s7h3jXNGOMKabhkkGhWUslb1xBSoNqotzTU+gC/+WLz+T9S+Zw3snHAK66qNiAs3yL507l8S37irYbhKuJJrXE+fZfL+DVJ07NrB/qLTSNMaaYhksG4et5S9xdtPPvXxBczGdOah50f3OmtvK1/3JWZiRyS6L8ZLBk7hQO9SZ5duehguvD1USBL77jdG792LkAdB4ob/ZTY4wZTMMlg3AzQNvEJmDg7S/bXzGd77zvbD679FQA3r9kTtn7b45FB1zAi1ky1/3Kf3jTywXXh3sTZfYfj7Jk7hRa4lHuXreTNVv3lx2bMcYU04DJIJsNprQm3DKCWUuzcxW961WzaYq5i/rX/stZOY3GpTQPoWQwe0or82aM596nXyq4fm93H5Na4wW/w9RxCR7bso+Lr32wrGMZY0wpo2tOgyrImcI6uJmNT4n5bQTD8fH2k4kXmGKimKVnHMsPOjayt7uPqeMSmeWH+5LsO9zPrCK9hbbvz1YRpdI6YDCcMcYMRUOXDDLLfIo4ZnxiwLqhessZx3LRaW1D2j6tsOKZXTnLd/iLfXB3tHyffcupmdfl3izHGGOKabhkkLm/ceiXdJAfpk9oqno8Zxw3kanjEjz4fO6U1tv3u55CxcYRfOLCefzHJ84H4CM3r+Sh5wu3OxhjTDkaLhkEpYDwhf9QjxvdO3189ZNBJCKce9IxPPT8y6hmu5hu9/dJLlZNBHCKH3OwaXc3V9/2ZGUDNcbUtYZLBn1+kFg4Gbzc3TtgWTWdN+8YOg/0sHFX9j4FO/YfIRoRZpSIaVxTLFPS2dPVx08f3sKhnv5Kh2uMqUMNlwz2dPkLf6gUsOdQ34Bl1fSm+W0kYhF+/MALmWXb9x/h2InNmfsyF/PgVRfxpXecTldvkn/8j3Vcu+J5ntl5sNIhG2PqTMMlg/NOPoaFx0/m6rfNzywLJpurVclgxsRmLl0yh1+v2pYZVfzi3sPMKtJ4HDZzUgtvOj3bYH3dn59n6f/9C79etY07Vm+vWMzGmPrScMlgQnOc2z5+fs4cP4FpNSoZAFx23lySaWX5kztIppV12w/wyiI3x8k3Z2or131gIR8+f25m2Wd+tYZP3rKaT926mu/+cUOFojbG1IuGG2dQyqSWgQO8quWk6eM5c9ZE/mP1dt45O01vMs2iE6aU/fmlZ85k4QlT6NzfQ0qVe59+iUQswm2Pu9LBqhf38ck3zGPRCVMH2VPWSwd7uPfpl9i4q4stL3fzviVzOHHaeE49dsKQv58xZnSzZBAy2Eyjlfa+xXP44h1Psc7X7iw8vvxkADBjQjPXfXAR+7r7WLloL32pNE/tOMjyJ3dw/3O7WbttP7d+7FxOaRv8Yr5u+wG+cPta1mxz91sQgRXP7mbquAQffe2J/NVZxzFnauuQv6MxZnSyZABceeE8nikyWVw1feA1JzB7aisfvnElE5pjHFvGRHmFTBmX4M1nHAvAO846jisvnMeWlw9z6Y8e5q3f/Qv/+Pb5XH5+8Xso/+ThLXzxP9zN5z7/ttOYe8w4xjXF2LSnm2/c/QzfuPtZfv3YNj507gm8d/GcsqffMMaMXva/GPhMaDRvLYkIF546g+9e2MrCJa8esf2Oa4px+nET+eOnXs/Vt63lmt8+zZa9h/mHN74ip2rsYE8/n751DSue2cVrT5nGVy4+k7nTxmXWnz9vGm9/5Uye3LafK3/+BNf89mluf2I7S8+cybwSt+80xox+lgxGoUlNUpEqmOkTmvjhBxfxleVPc+ODm/nVY9v4yAUnMnNSM0/tOMD9z+1hx/4jfOjcuVx50bycuZICU8claD91Bo9/8U38fl0n//y79Xz97mc4pllYvusJLjtvLq9om8B4Ky0YM6bY/9gGE40I17zzDN69cBZf/u3TfO8+19MoFhHOOXEqX3j7fN7iq5hKScQiXLxgFhcvmMU9T+3kuntWc/e6ndyxegeTWuKcPWcyrz5xKnOPGceSE6cwqSWemQXWGDP61CQZiMhS4LtAFPg3Vf1aLeJoZGfNnsyv/vZcDhzpZ+fBHlrjMY4/ZnilkbeccSxNu5s5ZcGrWbttP3eu2cGm3d18855nM9vEIsIr2iZwzPgEJ00bx7GTWpg+oYk5U1qY3JpgztQWmmOD3y7UGFMZVU8GIhIFrgXeBGwDVorInar6dLVjaXQiwuTWBJNbj362VnDzKM2a3MLSM2cCbkqNXYd6eWzzXnYd6uW5lw7Rub+HNVv3c9DPBxUWjwqzJrcwqTXBxOYYk1sTHDMuwdRxCVriURKxiHtEI2W9borlvh9sNHc9U1VUQYPX4N/75QppvzwdbOuf0+Ht87ZJh+bTiogg4ub/cs+AwIFeZU9XL4L7m3PPfrsIhZf73wT5+xMRIlJ49mFzdGpRMjgH2KiqmwBE5BbgYsCSQZ05bnILx01uYcGcyQPW7evu48CRfja/3M3BniRb9x7mYE8/O/b3cPBIPweO9LN172Fe7urjUO/AxDEcESGUNKKkk300P3RfZn2pC0x4Vf5mwsAZcN3yXLkXWr8s/wJMsC77Pnxx7k8mia24J+8z2W3JuXhraH81tuKPFdltOEmEkwmZ5e59kECCBJX5TIHPg9Df30fTg38MJbiBfx+F/iYG+1sI7yNnbzJwWbDtv7zrlZxzYvnjg4arFslgFrA19H4bMKDrjIgsA5YBtLW10dHRMayDdXV1DfuztdJoMU8EzhCgxT8yBGgimU7Qn4b+NCTTSjL02j3nvu5Puxv+FFvn9pGipy9NPO4STfh6Werimb9Kw0sKv8z5NgS/dINloYtWsE3uBSt0IQGS/Uo84acOCC5uRLL7ydsXecvDxyW0PJIXmxQ4fvb2sHmx++8bTjyZ5AT09PaSSDRlz4tmtwcIOqKpX6FFtsvsO7T/8Hb5x81JrPnrNPtvp35BeH99/Wli8dSAYxaSPV75fws62PrQ6/Vrn+DwlsHb2476uuGKgtV7AO/FtRME7z8IfL/UZxYtWqTDtWLFimF/tlYs5uqwmKvDYq6OQjEDj2mZ1+ZaVKJuA8J3mJ8N7KhBHMYYY7xaJIOVwCkicqKIJID3A3fWIA5jjDFe1dsMVDUpIlcC9+C6lt6gqk9VOw5jjDFZNRlnoKp3AXfV4tjGGGMGatyO18YYYzIsGRhjjLFkYIwxxpKBMcYYQHRUjFUvTUR2A1uG+fFpwJ4RDKcaLObqsJirw2KujkIxn6Cq08v58JhIBkdDRB5T1cW1jmMoLObqsJirw2KujqON2aqJjDHGWDIwxhjTGMng+loHMAwWc3VYzNVhMVfHUcVc920GxhhjBtcIJQNjjDGDsGRgjDGmvpOBiCwVkWdFZKOIXFXreIoRkc0islZEVovIY37ZVBG5V0Q2+OcpNY7xBhHZJSLrQssKxijO9/x5f1JEFo6imK8Rke3+XK8WkbeF1l3tY35WRN5So5jniMgKEVkvIk+JyCf98lF7rkvEPGrPtYg0i8ijIrLGx/xPfvmJIvKIP8+/9NPsIyJN/v1Gv37uKIr5JhF5IXSeF/jlQ/vbKPcuOGPtgZse+3ngJCABrAFOr3VcRWLdDEzLW/YN4Cr/+irg6zWO8XXAQmDdYDECbwN+j7sj4muAR0ZRzNcAnymw7en+b6QJONH/7URrEPNMYKF/PQF4zsc2as91iZhH7bn252u8fx0HHvHn71bg/X75dcB/968/DlznX78f+GUNznOxmG8C3lNg+yH9bdRzyeAcYKOqblLVPuAW4OIaxzQUFwM3+9c3A5fUMBZU9X5gb97iYjFeDPy7Og8Dk0VkZnUizSoSczEXA7eoaq+qvgBsxP0NVZWqdqrq4/71IWA97r7ho/Zcl4i5mJqfa3++uvzbuH8ocBHwa788/zwH5//XwBskfHf7KigRczFD+tuo52QwC9gaer+N0n+gtaTAH0RklYgs88vaVLUT3H82YEbNoiuuWIyj/dxf6YvNN4Sq30ZdzL4q4lW4X4Bj4lznxQyj+FyLSFREVgO7gHtxJZT9qposEFcmZr/+AHBMdSMeGLOqBuf5q/48f0dEmvJj9kqe53pOBoWy9mjtR3u+qi4E3gp8QkReV+uAjtJoPvf/CpwMLAA6gW/55aMqZhEZD/wG+AdVPVhq0wLLahJ3gZhH9blW1ZSqLsDdh/0cYH6hzfzzqIxZRM4ErgZOA5YAU4HP+c2HFHM9J4NtwJzQ+9nAjhrFUpKq7vDPu4DbcX+YLwVFOv+8q3YRFlUsxlF77lX1Jf8fKg38iGz1xKiJWUTiuIvqz1T1Nr94VJ/rQjGPhXMNoKr7gQ5cvfpkEQnuABmOKxOzXz+J8qsgR1wo5qW+mk5VtRe4kWGe53pOBiuBU3zvgASu0efOGsc0gIiME5EJwWvgzcA6XKyX+c0uA+6oTYQlFYvxTuBDvjfDa4ADQRVHreXVmb4Ld67Bxfx+32vkROAU4NEaxCfAj4H1qvrt0KpRe66LxTyaz7WITBeRyf51C/BGXFvHCuA9frP88xyc//cAf1LfSlstRWJ+JvQjQXBtHOHzXP7fRrVbxKv5wLWmP4erC/xCreMpEuNJuJ4Va4Cngjhx9ZH3ARv889Qax/kLXFG/H/eL44piMeKKp9f6874WWDyKYv6Jj+lJ/59lZmj7L/iYnwXeWqOYL8AV5Z8EVvvH20bzuS4R86g918BZwBM+tnXAl/zyk3CJaSPwK6DJL2/27zf69SeNopj/5M/zOuCnZHscDelvw6ajMMYYU9fVRMYYY8pkycAYY4wlA2OMMZYMjDHGYMnAGGMMlgzMKCMiKiLfCr3/jIhcM0L7vklE3jP4lkd9nPeKm8FzRaWPlXfcy0Xk/1XzmKZ+WDIwo00v8G4RmVbrQMJEJDqEza8APq6qF1YqHmNGmiUDM9okcfdy/R/5K/J/2YtIl39uF5E/i8itIvKciHxNRP6bn/t9rYicHNrNG0XkL367d/jPR0XkmyKy0k/29bHQfleIyM9xg3by47nU73+diHzdL/sSbhDWdSLyzQKf+WzoOMF89HNF5BkRudkv/7WItPp1bxCRJ/xxbggmIRORJSLyn+Lmtn80GMUOHCcid4ubj/8boe93k49zrYgMOLfGxAbfxJiquxZ4MriYlels3ERje4FNwL+p6jnibrTyd8A/+O3mAq/HTaC2QkTmAR/CDdVf4i+2D4rIH/z25wBnqptqOUNEjgO+DiwC9uFmnb1EVb8sIhfh5vF/LO8zb8ZNvXAObnToneImJXwROBW4QlUfFJEbgI/7Kp+bgDeo6nMi8u/AfxeRHwC/BN6nqitFZCJwxB9mAW7W0F7gWRH5Pm6G01mqeqaPY/IQzqtpEFYyMKOOuhkv/x34+yF8bKW6Cbt6ccPvg4v5WlwCCNyqqmlV3YBLGqfh5oP6kLipgR/BTf1wit/+0fxE4C0BOlR1t7opjX+Gu5lOKW/2jyeAx/2xg+NsVdUH/euf4koXpwIvqOpzfvnN/hinAp2quhLc+dLstMv3qeoBVe0BngZO8N/zJBH5vogsBUrNgmoalJUMzGj1f3EXzBtDy5L4HzB+Uq5EaF1v6HU69D5N7t95/vwrivuV/neqek94hYi0A91F4hvOjU0E+N+q+sO848wtEVex/RSbRyZ8HlJATFX3icjZwFuATwB/DXxkSJGbumclAzMqqepe3C0Irwgt3oyrlgF3F6f4MHb9XhGJ+HaEk3ATpd2Dq36JA4jIK8TNIFvKI8DrRWSab1y+FPjzIJ+5B/iIuHn/EZFZIhLcpOZ4ETnXv74UeAB4Bpjrq7IAPuiP8QyubWCJ388EyU67PIBvjI+o6m+AL+JuBWpMDisZmNHsW8CVofc/Au4QkUdxM3cW+9VeyrO4C2ob8Leq2iMi/4arSnrclzh2M8htRlW1U0Suxk15LMBdqlpymnFV/YOIzAcecoehC/gA7hf8euAyEfkhbmbSf/WxfRj4lb/Yr8Tdh7dPRN4HfF/cVMZHcNMZFzMLuFFEgh9/V5eK0zQmm7XUmBrz1UTLgwZeY2rBqomMMcZYycAYY4yVDIwxxmDJwBhjDJYMjDHGYMnAGGMMlgyMMcYA/x9wvpeKJs+AdgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(error)\n",
    "plt.xlabel('Number of epochs')\n",
    "plt.ylabel('Training error')\n",
    "plt.grid()\n",
    "plt.title('Training error progress')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5,1,'Comparison of Truth and Predicted')"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 用训练好的模型来预测\n",
    "predict_y=multilayer_net.sim(dataset_X)\n",
    "plt.scatter(dataset_X,dataset_y,label='dataset')\n",
    "plt.scatter(dataset_X,predict_y,label='predicted')\n",
    "plt.legend()\n",
    "plt.title('Comparison of Truth and Predicted')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
